Working in a Startup
Seven months back I made the decision of leaving Bangkok and returning to India. Making the move was a thing I felt I had to do. My work was getting less challenging and needed something new to toy around with. Joining a startup was definitely something new. The interview sessions I had with MQuotient had definitely struck the right note. Folks there seemed to be brilliant and were bubbling with ideas, ideas that caught my attention. With all set I moved to Koregaon Park, Pune.
Things were very different from what I imagined it to be from the moment I stepped first into the office. I was greeted by Rishi on the first day, who showed me to the guest house they had provided. At dinner I met a few others: Kumar, Sreejith and Shezad. With a nice meal and good chat I rested in the comforts of the guest house. Navneet, one who had interviewed my technical skills, showed up at around 9(or 10, I forget the details) to lead me to the office. The office looked very cozy, with the far end seating the programmers. I got oriented and got a rough idea about the projects and had a quick look at the code.
Few days pass I got the keys to the office, being the only insane guy who wishes to come in unearthly work hours(8 - 5). I pop into the office at around 8 in the morning and expecting folks to trickle in by 9 - 10. I wait and wait... finally around 11 someone shows up and much later by 1 all are in. I just felt my whole world had turned upside down. I am some one who loves mornings. With no friends in Pune yet and a whole different work culture I started wondering if I made the right move. I called my friend and told that I had made a mistake and was thinking of getting back to Bangkok. Days passed with similar changes, changes that I did not expect.
With comfort from family and friends I decided to stick on to it. I am glad I decided to do so. For in these months I have come to enjoy the work and be a part of a brilliant team making great products. Things changed from drifting timing to a common 6 hour routine, from strangers to friends.
Days are more interesting now, with a game of UNO(which has eventaully become Calvin ball) invariably being requested for, flame wars between Vim and Eclipse, decisions on how to code, logging into another's Facebook account(grin, you'd know what we'd do), rebooting other's machines via a remote shell and many more.
It's not just the fun. The products we are creating are in a league of their own. Ideas pop in every now and then. We refine and iterate code, look why 10 million records in the database seemed to slow things a bit, tweak with Git as the defacto versioning system, toy around with Django and simply learn to adore Python. Folks from the front end department claim JavaScript as the future of languages while the Pythonist defend with all valour. Speed tests comparing JavaScript and Python, CPython and Pypy, C and JavaScript and on goes the list. Taking an online Python challenge, creating tests for new candidates and correcting them... the list seems endless.
Here are my two cents on what to expect and do in a startup.
Utilize your free time well. There will be times when you have little to do. Utilize this time, do not wait for someone to tell you what to do(usually folks don't.) Write scripts to automate things, learn more how to use your favourite editor(cough... cough... Vim), read about how to improve your code. Improve the code you wrote earlier. At work our self procliamed "genius" rewrote a 120 line code to a 6 liner.
Learn to adjust. I believe this is probably the most important thing to get right. There will definitely be areas in which you do not agree, let it be. You are not going to lose anything if you let it go. If what you were arguing for was right, in the long run that will be implemented.
Take work seriously. With a casual environment in a startup, generally, it is tempting to take things lightly. It is just not a 9 to 6 job. Sometimes you have to take up the problem back at home. When time comes it is necessary to stretch time a bit to make sure the work is done.
Learn to take ownership of code. This is something that took a while for to get used to. If assigned to a task take the ownership of it. Improve on it when you have time to spare. Get feedback on what you have written from senior programmers or colleagues. If you are assigned to take over code written by another programmer, don't just rush in and reimplement it. Take time to read his code.
Challenges, jokes, UNO, celebrating with "tea and rusk", UrbanTerror, nocturnal weeks, 9gag, improving Python and JavaScript skills, becoming a better programmer... It definitely has been wonderful.